#include "ITexture.hpp"
#include <GL/glew.h>

namespace Graphics
{
	class TextureGL : public ITexture
	{
	protected:
		GLuint m_nName;
		GLubyte* m_nPixelData;
		bool m_bLocked;

	public:
		TextureGL();
		virtual ~TextureGL();
		virtual void* Lock();
		virtual void Unlock();
		virtual RevEng::Math::Size3ui GetSize() const;
		virtual void SetSize(const RevEng::Math::Size3ui &Size);

		GLuint GetId() const;
	};

	inline GLuint TextureGL::GetId() const
	{
		return m_nName;
	}
}
